/* 欧拉回路
* 1.概念:
    欧拉路径：从图中某个点出发遍历整个图，图中每条边通过且只通过一次。
    欧拉回路：起点和终点相同的欧拉路。
    奇点：度为奇数的点。
    偶点：度为偶数的点。

* 2.欧拉路径：
    起点和终点不是同一个点：
    (1)无向图：起点和终点一定是奇点，中间经过的点一定是偶点。
    (2)有向图：起点出度个数比入度大一，终点入度个数比出度大一。中间的出入度个数相等。

* 3.欧拉回路：
    起点和终点是同一个点。
    (1)无向图：所有点都是偶点。（所有点都可以是起点）。
    (2)有向图：所有点的出入度个数相等。

    注意：
    无向的连通图中不存在奇数的奇点。

* 4.对于无向图，所有边都是连通的。
    (1)存在欧拉路径的充分必要条件:度数为奇数的点只能有0或?个。
    (2)存在欧拉回路的充分必要条件:度数为奇数的点只能有0个。

* 5.对于有向图，所有边都是连通,
    (1)存在欧拉路径的充分必要条件:要么所有点的出度均等于入度;
                                要么除了两个点之外，其余所有点的出度等于入度，剩余的两个点:一个满足出度比入度多1(起点)，
                                                                                      另一个满足入度比出度多1(终点)
    (2)存在欧拉回路的充分必要条件:所有点的出度均等于入度。

* 6.存欧拉路径解释:因为如果某点存在多条边，且有环，则某条边可能会dfs直通终点。
    因为没有先遍历环，则不能先存入遍历的点(边)，要该点的所有邻边遍历完，准备回溯时存入点(边),最后再逆序输出就是欧拉回路(路径)走的顺序。
 
* 本题: 
    模板题 
*/

#pragma GCC optimize("O1,O2,O3,Ofast")
#pragma GCC optimize("no-stack-protector,unroll-loops,fast-math,inline")
#pragma GCC target("avx,avx2,fma")
#pragma GCC target("sse,sse2,sse3,sse4,sse4.1,sse4.2,ssse3")

#include <iostream>
#include <cstring>
#include <algorithm>
// #define ONLINE_GUDGE
using namespace std;
const int N = 30;

int n;
bool st[N];
int din[N], dout[N], fa[N];

int find(int x){
    if(fa[x] == x) return x;
    return fa[x] = find(fa[x]);
}

int main()
{

    #ifdef ONLINE_JUDGE

    #else
    freopen("./in.txt","r",stdin);
    #endif
    ios::sync_with_stdio(false);   
	cin.tie(0);
    
    int T; cin >> T;
    char str[1010];
    while(T--)
    {
        memset(din,0,sizeof din);
        memset(dout,0,sizeof dout);
        memset(st,0,sizeof st);
        cin >> n;
        for(int i = 0; i < 26; i++) fa[i] = i; // 初始化并查集
        for(int i = 0; i < n; i++)
        {
            cin >> str;
            int len = strlen(str);
            int a = str[0] - 'a', b = str[len-1] - 'a';
            st[a] = st[b] = true;
            din[b]++; dout[a]++;
            fa[find(a)] = find(b);
        }
    
        // 判断是否满足欧拉路径的充要条件
        int start = 0,end = 0; // 统计起点和终点个数
        bool success = true;

        for(int i = 0; i<26;  i++){
            if(din[i] != dout[i]){
                if(din[i] == dout[i] + 1) end ++;
                else if(din[i] + 1 == dout[i]) start ++;
                else{
                    success = false;
                    break;
                }
            }
        }
    

    //                欧拉回路          欧拉路径
    if(success && !(!start && !end || start == 1 && end == 1)) success = false;

    // 判断是否连通
    int rep = -1;
    for(int i = 0; i < 26; i++)
        if(st[i]){
            if(rep == -1) rep = find(i);
            else if(rep != find(i)){success = false; break;}
        }


    if(success) printf("Ordering is possible.\n");
    else printf("The door cannot be opened.\n");

    }
    return 0;
}